Criando o seu próprio pacote
1. Organizar o código
- Crie um projeto java em branco. Se você não lembra como criar um projeto novo do zero veja este vídeo Criar Projeto Novo Java no VSCode:
- Dentro da pasta src do seu projeto crie uma estrutra de pasta da seguinte forma. Para isto, clique em src e depois no ícone de criar novo diretório. Crie primeiramente um diretório chamado br. Depois selecione a pasta br e clique novamente em adicionar um novo diretório e digite com no nome do novo diretorio. Selecione o diretório com e clique novamente em criar um novo diretório e digite agora o nome validador. Por último, crie um arquivo chamado validadorSenha.java.
src
└── br
└── com
└── validador
└── validadorSenha.java
- Coloque o código a seguir no arquivo
validadorSenha.javapackage br.com.validador; public class validadorSenha { // Método para validar a complexidade da senha public static boolean validarSenha(String senha) { // Verifica se a senha não é nula e tem pelo menos 8 caracteres if (senha == null || senha.length() < 8) { throw new IllegalArgumentException("A senha deve ter pelo menos 8 caracteres."); } // Variáveis para verificar as condições de complexidade boolean temMaiuscula = false; boolean temMinuscula = false; boolean temNumero = false; boolean temCaractereEspecial = false; // Percorre cada caractere da senha for (int i = 0; i < senha.length(); i++) { char c = senha.charAt(i); // Verifica se o caractere é uma letra maiúscula if (Character.isUpperCase(c)) { temMaiuscula = true; } // Verifica se o caractere é uma letra minúscula if (Character.isLowerCase(c)) { temMinuscula = true; } // Verifica se o caractere é um número if (Character.isDigit(c)) { temNumero = true; } // Verifica se o caractere é um caractere especial if (isCaractereEspecial(c)) { temCaractereEspecial = true; } } // Verifica se todas as condições de complexidade foram atendidas if (!temMaiuscula) { throw new IllegalArgumentException("A senha deve conter pelo menos uma letra maiúscula."); } if (!temMinuscula) { throw new IllegalArgumentException("A senha deve conter pelo menos uma letra minúscula."); } if (!temNumero) { throw new IllegalArgumentException("A senha deve conter pelo menos um número."); } if (!temCaractereEspecial) { throw new IllegalArgumentException("A senha deve conter pelo menos um caractere especial."); } return true; } // Método auxiliar para verificar se um caractere é um caractere especial private static boolean isCaractereEspecial(char c) { // Definimos um conjunto de caracteres especiais char[] caracteresEspeciais = {'!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '-', '=', '+', '{', '}', '[', ']', ':', ';', '"', '\'', '<', '>', ',', '.', '?', '/', '\\', '|', ' '}; // Verifica se o caractere está na lista de caracteres especiais for (char caractereEspecial : caracteresEspeciais) { if (c == caractereEspecial) { return true; } } return false; } } - Certifique-se de que a estrutura de diretórios esteja correta e que o código Java esteja no caminho correto para ser compilado.
- Como este código se trata de uma biblioteca, não precisaremos do arquivo App.java criado por padrão pelo VSCode. Você pode apagar o arquivo App.java. O arquivo App.java, seria utilizado apenas para testar a classe validador senha, como estamos fornecendo o codigo já testado, então não será necessário o App.java.
- Para entender o que significa a linha
package br.com.validador;leia o próximo artigo.
2. Compilar o código
No terminal do VSCode execute o comando abaixo:
javac -encoding UTF-8 -d .\bin\ .\src\br\com\validador\validadorSenha.java
javac é o compilador Java. Ele é usado para compilar arquivos fonte .java em bytecode Java, que é armazenado em
arquivos .class.-encoding UTF-8 especifica a codificação de caracteres a ser usada ao ler os arquivos fonte. No caso, UTF-8 é um tipo
de codificação que pode representar qualquer caractere em praticamente qualquer língua do mundo principalmente linguas que utilizam acentuação como no caso do português.-d especifica o diretório de destino onde os arquivos .class (código compilado) serão colocados após a
compilação..\bin\ indica que os arquivos compilados devem ser armazenados na pasta bin (geralmente, a pasta bin é
onde o bytecode compilado é armazenado em um projeto no VSCode)..\src\br\com\validador\validadorSenha.java: Este é o caminho do arquivo fonte Java que você deseja compilar.3. Gerar o pacote para distribuir a sua biblioteca
No terminal do VSCode execute o comando abaixo:
jar cf validadorSenha.jar -C .\bin\ .
jar O comando jar é uma ferramenta fornecida utilizada para empacotar "arquivo compactado" arquivos
.class, bibliotecas e outros recursos em um arquivo JAR.c é uma opção que indica que o objetivo do comando é criar um novo arquivo JAR.f é uma opção que indica que o nome do arquivo JAR será fornecido diretamente a seguir. Ou seja, f informa ao
jar que o próximo argumento será o nome do arquivo JAR a ser criado.validadorSenha.jar é o nome do arquivo JAR que será criado. Esse arquivo irá conter as classes compiladas e outros arquivos que
você especificar.-C a opção -C permite mudar temporariamente o diretório de trabalho ao empacotar os
arquivos..\bin\ especifica o diretório a partir do qual os arquivos serão empacotados. No caso, o diretório bin, que é onde
você compilou as classes (de acordo com o comando javac -d .\bin\ que discutimos anteriormente)..) ao final do comando significa incluir todos os arquivos e subdiretórios do diretório atual (que, após o
-C, é .\bin\) no arquivo JAR.O que acontece após executar o comando jar?
- O comando
jarirá criar um arquivo JAR chamadovalidadorSenha.jar. - Pronto, você tem agora uma biblioteca que pode ser compartilhada com outras pessoas da forma que você quiser. Você pode adicionar a sua biblioteca em seu github ou site.
4. Utilizando a sua própria biblioteca.
Criar um Novo Projeto Java
1 - Primeiramente, você precisa criar um novo projeto Java.
2 - Copie o arquivo validadorSenha.jar para a pasta lib do seu projeto.
3 - Crie o código abaixo:
import br.com.validador.validadorSenha;
public class App{
public static void main(String[] args) {
// Exemplo de uso da biblioteca validadorSenha
String senha = "Senha123!";
try {
boolean valida = validadorSenha.validarSenha(senha);
System.out.println("Senha válida: " + valida);
} catch (IllegalArgumentException e) {
System.out.println("Erro: " + e.getMessage());
}
}
}